{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "327356a0",
   "metadata": {
    "_cell_guid": "b1076dfc-b9ad-4769-8c92-a6c4dae69d19",
    "_uuid": "8f2839f25d086af736a60e9eeb907d3b93b6e0e5",
    "execution": {
     "iopub.execute_input": "2022-11-28T21:50:20.223298Z",
     "iopub.status.busy": "2022-11-28T21:50:20.222319Z",
     "iopub.status.idle": "2022-11-28T21:50:21.587327Z",
     "shell.execute_reply": "2022-11-28T21:50:21.586105Z"
    },
    "papermill": {
     "duration": 1.374734,
     "end_time": "2022-11-28T21:50:21.590437",
     "exception": false,
     "start_time": "2022-11-28T21:50:20.215703",
     "status": "completed"
    },
    "tags": []
   },
   "outputs": [],
   "source": [
    "import numpy as np \n",
    "import pandas as pd\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "from joblib import Parallel, delayed\n",
    "from sklearn.datasets import make_regression\n",
    "from sklearn.preprocessing import OneHotEncoder\n",
    "from sklearn.linear_model import LogisticRegression\n",
    "from sklearn.isotonic import IsotonicRegression\n",
    "from sklearn.multioutput import ClassifierChain\n",
    "from sklearn.model_selection import train_test_split\n",
    "from sklearn.metrics import brier_score_loss, log_loss"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "c3e90afd",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2022-11-28T21:50:21.599263Z",
     "iopub.status.busy": "2022-11-28T21:50:21.598855Z",
     "iopub.status.idle": "2022-11-28T21:50:21.617900Z",
     "shell.execute_reply": "2022-11-28T21:50:21.616297Z"
    },
    "papermill": {
     "duration": 0.028053,
     "end_time": "2022-11-28T21:50:21.622304",
     "exception": false,
     "start_time": "2022-11-28T21:50:21.594251",
     "status": "completed"
    },
    "tags": []
   },
   "outputs": [],
   "source": [
    "### SIMULATE SURVIVAL DATA ###\n",
    "\n",
    "def sim_event_times(n_samples=3_000, n_features=20, random_state=0):\n",
    "\n",
    "    X, y = make_regression(\n",
    "        n_samples=n_samples, n_features=n_features, \n",
    "        n_informative=int(n_features*.4), random_state=random_state,\n",
    "    )\n",
    "    y = np.searchsorted(np.quantile(y, np.linspace(0,1, 10)), y)\n",
    "        \n",
    "    np.random.seed(random_state)\n",
    "    betas = 365 * np.exp(-0.6 * y) / np.log(1.1)\n",
    "    y_time = np.random.exponential(betas)\n",
    "    \n",
    "    return X, y_time\n",
    "\n",
    "\n",
    "X, y_time = sim_event_times(n_samples=3_000, n_features=20)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "8fd74927",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2022-11-28T21:50:21.641286Z",
     "iopub.status.busy": "2022-11-28T21:50:21.640549Z",
     "iopub.status.idle": "2022-11-28T21:50:21.673919Z",
     "shell.execute_reply": "2022-11-28T21:50:21.672349Z"
    },
    "papermill": {
     "duration": 0.048071,
     "end_time": "2022-11-28T21:50:21.678556",
     "exception": false,
     "start_time": "2022-11-28T21:50:21.630485",
     "status": "completed"
    },
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(3000, 20)"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "### ADJUST EVENT TARGET ###\n",
    "\n",
    "n_bins = 20\n",
    "max_time = 700\n",
    "\n",
    "y_time[(y_time > max_time)] = max_time\n",
    "bin_edges = np.linspace(y_time.min(), y_time.max(), n_bins+1)\n",
    "bin_edges[0] = 0\n",
    "\n",
    "encoder = OneHotEncoder(\n",
    "    categories = [np.arange(n_bins+1)],\n",
    "    sparse = False, drop = None\n",
    ").fit(np.zeros((1, 1)))\n",
    "\n",
    "time = np.searchsorted(bin_edges[1:], y_time, side='right')\n",
    "y_time_ohe = encoder.transform(time.reshape(-1, 1))\n",
    "y_time_ohe = np.cumsum(y_time_ohe, 1)\n",
    "y_time_ohe = y_time_ohe[:,:-1]\n",
    "\n",
    "y_time_ohe.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "a1ce90d6",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2022-11-28T21:50:21.698299Z",
     "iopub.status.busy": "2022-11-28T21:50:21.697620Z",
     "iopub.status.idle": "2022-11-28T21:50:22.123491Z",
     "shell.execute_reply": "2022-11-28T21:50:22.121982Z"
    },
    "papermill": {
     "duration": 0.438988,
     "end_time": "2022-11-28T21:50:22.126026",
     "exception": false,
     "start_time": "2022-11-28T21:50:21.687038",
     "status": "completed"
    },
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1152x360 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "### PLOT EVENT TARGET AND LABEL PROPORTION ###\n",
    "\n",
    "plt.figure(figsize=(16,5))\n",
    "plt.subplot(1,2,1)\n",
    "plt.hist(y_time, bins=bin_edges, color='green')\n",
    "plt.xlabel('timeline'); plt.ylabel('frequency')\n",
    "plt.subplot(1,2,2)\n",
    "plt.plot(bin_edges[:-1], y_time_ohe.mean(axis=0), marker='o', color='green')\n",
    "plt.ylim([-0.03,1.03]); plt.axhline(0.5, linestyle='--', c='black')\n",
    "plt.xlabel('timeline'); plt.ylabel('label proportion')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "7468a429",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2022-11-28T21:50:22.136212Z",
     "iopub.status.busy": "2022-11-28T21:50:22.135765Z",
     "iopub.status.idle": "2022-11-28T21:50:22.143781Z",
     "shell.execute_reply": "2022-11-28T21:50:22.142650Z"
    },
    "papermill": {
     "duration": 0.016309,
     "end_time": "2022-11-28T21:50:22.146378",
     "exception": false,
     "start_time": "2022-11-28T21:50:22.130069",
     "status": "completed"
    },
    "tags": []
   },
   "outputs": [],
   "source": [
    "### TRAIN-TEST SPLIT ###\n",
    "\n",
    "X_train, X_test, y_train, y_test = train_test_split(\n",
    "    X, y_time_ohe, test_size=0.25, shuffle=True, random_state=33\n",
    ")\n",
    "\n",
    "y_test = 1 - y_test"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "fa5983e2",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2022-11-28T21:50:22.156558Z",
     "iopub.status.busy": "2022-11-28T21:50:22.156154Z",
     "iopub.status.idle": "2022-11-28T21:50:27.333026Z",
     "shell.execute_reply": "2022-11-28T21:50:27.331481Z"
    },
    "papermill": {
     "duration": 5.187413,
     "end_time": "2022-11-28T21:50:27.337930",
     "exception": false,
     "start_time": "2022-11-28T21:50:22.150517",
     "status": "completed"
    },
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "ClassifierChain(base_estimator=LogisticRegression(max_iter=2000,\n",
       "                                                  random_state=33),\n",
       "                cv=5)"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "### FIT CHAIN CLASSIFIER ###\n",
    "\n",
    "model = ClassifierChain(\n",
    "    LogisticRegression(random_state=33, max_iter=2000),\n",
    "    cv=5\n",
    ")\n",
    "model.fit(X_train, y_train)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "d578d406",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2022-11-28T21:50:27.361198Z",
     "iopub.status.busy": "2022-11-28T21:50:27.360273Z",
     "iopub.status.idle": "2022-11-28T21:50:28.783131Z",
     "shell.execute_reply": "2022-11-28T21:50:28.781648Z"
    },
    "papermill": {
     "duration": 1.437943,
     "end_time": "2022-11-28T21:50:28.786444",
     "exception": false,
     "start_time": "2022-11-28T21:50:27.348501",
     "status": "completed"
    },
    "tags": []
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 4 concurrent workers.\n",
      "[Parallel(n_jobs=-1)]: Done 116 tasks      | elapsed:    1.1s\n",
      "[Parallel(n_jobs=-1)]: Done 750 out of 750 | elapsed:    1.4s finished\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "(750, 20)"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "### POST-PROCESSING SURVIVAL CURVE PREDICTIONS ###\n",
    "\n",
    "isoreg = IsotonicRegression(y_min=0, y_max=1, increasing=True)\n",
    "x = np.arange(0, n_bins)\n",
    "\n",
    "proba = model.predict_proba(X_test)\n",
    "\n",
    "proba = Parallel(n_jobs=-1, verbose=1)(\n",
    "    delayed(isoreg.fit_transform)(x, p) \n",
    "    for p in proba\n",
    ")\n",
    "proba = 1 - np.asarray(proba)\n",
    "\n",
    "proba.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "d7c6b121",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2022-11-28T21:50:28.802414Z",
     "iopub.status.busy": "2022-11-28T21:50:28.801471Z",
     "iopub.status.idle": "2022-11-28T21:50:29.189359Z",
     "shell.execute_reply": "2022-11-28T21:50:29.188233Z"
    },
    "papermill": {
     "duration": 0.398686,
     "end_time": "2022-11-28T21:50:29.191778",
     "exception": false,
     "start_time": "2022-11-28T21:50:28.793092",
     "status": "completed"
    },
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1152x360 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "### PLOT PREDICTED SURVIVAL CURVES ###\n",
    "\n",
    "plt.figure(figsize=(16,5))\n",
    "plt.subplot(1,2,1)\n",
    "plt.fill_between(bin_edges[:-1], proba[5], color='green', alpha=0.3, label='pred')\n",
    "plt.plot(bin_edges[:-1], y_test[5], color='orange', label='true')\n",
    "plt.ylim([-0.03,1.03])\n",
    "plt.xlabel('timeline'); plt.ylabel('probability'); plt.legend()\n",
    "plt.subplot(1,2,2)\n",
    "plt.fill_between(bin_edges[:-1], proba[15], color='green', alpha=0.3, label='pred')\n",
    "plt.plot(bin_edges[:-1], y_test[15], color='orange', label='true')\n",
    "plt.ylim([-0.03,1.03])\n",
    "plt.xlabel('timeline'); plt.ylabel('probability'); plt.legend()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "30287fe0",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2022-11-28T21:50:29.203454Z",
     "iopub.status.busy": "2022-11-28T21:50:29.203052Z",
     "iopub.status.idle": "2022-11-28T21:50:29.844802Z",
     "shell.execute_reply": "2022-11-28T21:50:29.843937Z"
    },
    "papermill": {
     "duration": 0.650191,
     "end_time": "2022-11-28T21:50:29.847026",
     "exception": false,
     "start_time": "2022-11-28T21:50:29.196835",
     "status": "completed"
    },
    "tags": []
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 4 concurrent workers.\n",
      "[Parallel(n_jobs=-1)]: Done 312 tasks      | elapsed:    0.1s\n",
      "[Parallel(n_jobs=-1)]: Done 750 out of 750 | elapsed:    0.3s finished\n",
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 4 concurrent workers.\n",
      "[Parallel(n_jobs=-1)]: Done 312 tasks      | elapsed:    0.2s\n",
      "[Parallel(n_jobs=-1)]: Done 750 out of 750 | elapsed:    0.4s finished\n"
     ]
    }
   ],
   "source": [
    "### COMPUTE SCORE ON TEST DATA ###\n",
    "\n",
    "brier_scores = Parallel(n_jobs=-1, verbose=1)(\n",
    "    delayed(brier_score_loss)(true, pred, pos_label=1) \n",
    "    for true,pred in zip(y_test,proba)\n",
    ")\n",
    "\n",
    "logloss_scores = Parallel(n_jobs=-1, verbose=1)(\n",
    "    delayed(log_loss)(true, pred, labels=[0,1]) \n",
    "    for true,pred in zip(y_test,proba)\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "9f973e75",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2022-11-28T21:50:29.858290Z",
     "iopub.status.busy": "2022-11-28T21:50:29.857840Z",
     "iopub.status.idle": "2022-11-28T21:50:30.239217Z",
     "shell.execute_reply": "2022-11-28T21:50:30.238351Z"
    },
    "papermill": {
     "duration": 0.389449,
     "end_time": "2022-11-28T21:50:30.241401",
     "exception": false,
     "start_time": "2022-11-28T21:50:29.851952",
     "status": "completed"
    },
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAA7MAAAE9CAYAAADZOzXuAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/NK7nSAAAACXBIWXMAAAsTAAALEwEAmpwYAAAjSklEQVR4nO3de7hddX3n8feHa0fBAiVlMMQGeUItOoqYIpWOg6VTlSqhrdIwFpHSojZW6DgdkTpFdJgHb1ixFQcrChZFFNRMRZEianXkEhC5pZYUUJIGOCoClik18Tt/7BXZhHPZJ9m3lf1+Pc95ztq/vdba37Oys3/nc9Zv/VaqCkmSJEmS2mS7URcgSZIkSdJ8GWYlSZIkSa1jmJUkSZIktY5hVpIkSZLUOoZZSZIkSVLrGGYlSZIkSa2zw6gL2Bp77rlnLV68eNRlSJK2Eddff/33qmrBqOsYlCSLgAuAvYACzq2q9yZ5C/CHwFSz6qlVdVmzzZuAE4CNwOur6vLZXsO+WZLUT7P1za0Os4sXL2bVqlWjLkOStI1I8p1R1zBgG4A3VNUNSXYFrk9yRfPce6rqXd0rJzkAWA48HXgy8HdJ9q+qjTO9gH2zJKmfZuubHWYsSdKEqKr1VXVDs/wQsBpYOMsmy4CLquqRqroTWAMcPPhKJUmam2FWkqQJlGQx8GzgmqbpdUluSnJekt2btoXA3V2brWWa8JvkxCSrkqyampra/GlJkgbCMCtJ0oRJsgtwCXByVT0InAPsBxwIrAfePZ/9VdW5VbW0qpYuWLDNXnIsSRozhllJkiZIkh3pBNkLq+pSgKq6t6o2VtVPgA/y6FDidcCirs33adokSRo5w6wkSRMiSYAPAaur6qyu9r27Vvst4JZmeSWwPMnOSfYFlgDXDqteSZJm0+rZjCVJ0rwcChwL3JzkxqbtVOCYJAfSuV3PXcCrAarq1iQXA7fRmQl5xWwzGUuSNEyGWUmSJkRVfQ3INE9dNss2ZwBnDKwoSZK2kMOMJUmSJEmtY5iVJEmSJLWOYVaSJEmS1DqGWUmSJElS6zgBVCOnTzcfxvzVadWX/UiSNOnsmyVJs/HMrCRJkiSpdQyzkiRJkqTWGViYTbIoyVVJbktya5KTmva3JFmX5Mbm64iubd6UZE2Sbyd54aBqkyRJkiS12yCvmd0AvKGqbkiyK3B9kiua595TVe/qXjnJAcBy4OnAk4G/S7J/VW0cYI2SJEmSpBYa2JnZqlpfVTc0yw8Bq4GFs2yyDLioqh6pqjuBNcDBg6pPkiRJktReQ7lmNsli4NnANU3T65LclOS8JLs3bQuBu7s2W8s04TfJiUlWJVk1NTU1yLIlSZIkSWNq4GE2yS7AJcDJVfUgcA6wH3AgsB5493z2V1XnVtXSqlq6YMGCfpcrSZIkSWqBgYbZJDvSCbIXVtWlAFV1b1VtrKqfAB/k0aHE64BFXZvv07RJkiRJkvQYg5zNOMCHgNVVdVZX+95dq/0WcEuzvBJYnmTnJPsCS4BrB1WfJEmSJKm9Bjmb8aHAscDNSW5s2k4FjklyIFDAXcCrAarq1iQXA7fRmQl5hTMZS5IkSZKmM7AwW1VfAzLNU5fNss0ZwBmDqkmSJEmStG0YymzGkiRJkiT1k2FWkiRJktQ6hllJkiRJUusYZiVJkiRJrWOYlSRJkiS1jmFWkiRJktQ6hllJkiRJUusYZiVJkiRJrWOYlSRJkiS1jmFWkiRJktQ6hllJkiRJUusYZiVJkiRJrWOYlSRJkiS1jmFWkiRJktQ6hllJkiRJUusYZiVJkiRJrWOYlSRJkiS1jmFWkiRJktQ6hllJkiRJUusYZiVJkiRJrWOYlSRJkiS1jmFWkiRJktQ6hllJkiRJUusYZiVJkiRJrWOYlSRJkiS1jmFWkiRJktQ6hllJkiRJUusYZiVJkiRJrWOYlSRJkiS1jmFWkqQJkWRRkquS3Jbk1iQnNe17JLkiye3N992b9iQ5O8maJDclOWi0P4EkSY8yzEqSNDk2AG+oqgOAQ4AVSQ4ATgGurKolwJXNY4AXA0uarxOBc4ZfsiRJ0zPMSpI0IapqfVXd0Cw/BKwGFgLLgPOb1c4HjmqWlwEXVMfVwG5J9h5u1ZIkTc8wK0nSBEqyGHg2cA2wV1Wtb566B9irWV4I3N212dqmbfN9nZhkVZJVU1NTgytakqQuhllJkiZMkl2AS4CTq+rB7ueqqoCaz/6q6tyqWlpVSxcsWNDHSiVJmplhVpKkCZJkRzpB9sKqurRpvnfT8OHm+31N+zpgUdfm+zRtkiSNnGFWkqQJkSTAh4DVVXVW11MrgeOa5eOAz3a1v7KZ1fgQ4IGu4ciSJI3UDqMuQJIkDc2hwLHAzUlubNpOBc4ELk5yAvAd4OjmucuAI4A1wMPA8UOtVpKkWRhmJUmaEFX1NSAzPH34NOsXsGKgRUmStIUcZixJkiRJah3DrCRJkiSpdQyzkiRJkqTWGViYTbIoyVVJbktya5KTmvY9klyR5Pbm++5Ne5KcnWRNkpuSHDSo2iRJkiRJ7TbIM7MbgDdU1QHAIcCKJAcApwBXVtUS4MrmMcCLgSXN14nAOQOsTZIkSZLUYgMLs1W1vqpuaJYfAlYDC4FlwPnNaucDRzXLy4ALquNqYLdNN3CXJEmSJKnbUK6ZTbIYeDZwDbBX1w3X7wH2apYXAnd3bba2aZMkSZIk6TEGHmaT7AJcApxcVQ92P9fcv67mub8Tk6xKsmpqaqqPlUqSJEmS2mKgYTbJjnSC7IVVdWnTfO+m4cPN9/ua9nXAoq7N92naHqOqzq2qpVW1dMGCBYMrXpIkSZI0tgY5m3GADwGrq+qsrqdWAsc1y8cBn+1qf2Uzq/EhwANdw5ElSZIkSfqpHQa470OBY4Gbk9zYtJ0KnAlcnOQE4DvA0c1zlwFHAGuAh4HjB1ibJEmSJKnFBhZmq+prQGZ4+vBp1i9gxaDqkSRJkiRtO4Yym7EkSZIkSf1kmJUkSZIktY5hVpIkSZLUOoZZSZIkSVLrGGYlSZIkSa1jmJUkSZIktY5hVpIkSZLUOoZZSZIkSVLrGGYlSZIkSa1jmJUkSZIktY5hVpIkSZLUOoZZSZIkSVLrGGYlSZIkSa1jmJUkSZIktY5hVpIkSZLUOoZZSZIkSVLrGGYlSZIkSa1jmJUkSZIktY5hVpIkSZLUOoZZSZIkSVLrGGYlSZIkSa1jmJUkSZIktY5hVpIkSZLUOoZZSZIkSVLrGGYlSZIkSa1jmJUkSZIktY5hVpIkSZLUOoZZSZIkSVLrGGYlSZIkSa1jmJUkSZIktY5hVpIkSZLUOoZZSZIkSVLrGGYlSZIkSa1jmJUkaUIkOS/JfUlu6Wp7S5J1SW5svo7oeu5NSdYk+XaSF46makmSpmeYlSRpcnwEeNE07e+pqgObr8sAkhwALAee3mzz/iTbD61SSZLmYJiVJGlCVNVXgR/0uPoy4KKqeqSq7gTWAAcPrDhJkubJMCtJkl6X5KZmGPLuTdtC4O6uddY2bY+T5MQkq5KsmpqaGnStkiQBhllJkibdOcB+wIHAeuDd891BVZ1bVUuraumCBQv6XJ4kSdMzzEqSNMGq6t6q2lhVPwE+yKNDidcBi7pW3adpkyRpLMwZZpNcn2RF17AjSZI0Qv3sm5Ps3fXwt4BNMx2vBJYn2TnJvsAS4NqtfT1JkvqllzOzvws8GbguyUVJXpgkA65LkiTNbIv65iQfB74B/GKStUlOAN6R5OYkNwEvAP4EoKpuBS4GbgO+AKyoqo0D+nkkSZq3HeZaoarWAH+W5H8ALwHOAzYm+TDw3qrqdVZESZLUB1vaN1fVMdM0f2iW1zkDOKMPJY9UTu/f3+DrtOrbviRJW6ena2aTPJPOhBDvBC4BXg48CHxplm28MbskSQOyJX2zJEnbkjnPzCa5Hvghnb/cnlJVjzRPXZPk0Fk2/Qjwl8AFm7W/p6retdlrdN+Y/cnA3yXZ3+FMkiQ93lb0zZIkbTPmDLPAy6vqjumeqKrfnmmjqvpqksU91vHTG7MDdybZdGP2b/S4vSRJk2SL+mZJkrYlvQwz/oMku216kGT3JP9zK17TG7NLkrR1+t03S5LUOr2E2RdX1Q83Paiq+4EjZl59Vt6YXZKkrdfPvlmSpFbqJcxun2TnTQ+S/Dtg51nWn5E3ZpckqS/61jdLktRWvVwzeyFwZTPdP8DxwPlb8mJJ9q6q9c3DzW/M/rEkZ9GZAMobs0uSNLO+9c2SJLVVL/eZfXtzI/XDm6a3VdXlc23X3Jj9MGDPJGuB04DDkhwIFHAX8OrmNW5NsunG7BvwxuySJM1oS/tmSZK2Jb2cmaWqPg98fj47ntQbs0uSNAxb0jdLkrQtmfOa2SS/neT2JA8keTDJQ0keHEZxkiTp8eybJUnq7czsO4CXVtXqQRcjSZJ6Yt8sSZp4vcxmfK+dpSRJY8W+WZI08Xo5M7sqySeAzwCPbGqsqksHVZQkSZqVfbMkaeL1EmafBDwM/EZXWwF2mJIkjYZ9syRp4vVya57jh1GIJEnqjX2zJEm9zWa8f5Irk9zSPH5mkjcPvjRJkjQd+2ZJknqbAOqDwJuAHwNU1U3A8kEWJUmSZmXfLEmaeL2E2SdU1bWbtW0YRDGSJKkn9s2SpInXS5j9XpL96EwsQZKXAesHWpUkSZqNfbMkaeL1MpvxCuBc4GlJ1gF3Ar830KpaLKenb/uq06pv+5IkbVPsmyVJE6+X2YzvAH49yROB7arqocGXJUmSZmLfLElSD2E2yZ9v9hiAqnrrgGqSJEmzsG+WJKm3Ycb/0rX8M8BLgNWDKUeSJPXAvlmSNPF6GWb87u7HSd4FXD6wiiRJ0qzsmyVJ6m024809Adin34VIkqQtZt8sSZo4vVwzezPN1P/A9sACwGtyJEkaEftmSZJ6u2b2JV3LG4B7q8obs0uSNDr2zZKkiddLmN18uv8nbZo1EaCqftDXiiRJ0lzsmyVJE6+XMHsDsAi4HwiwG/Dd5rkCnjqQyiRJ0kzsmyVJE6+XCaCuAF5aVXtW1c/RGdr0xarat6rsLCVJGj77ZknSxOslzB5SVZdtelBVnweeN7iSJEnSHOybJUkTr5dhxv+c5M3A3zSPXwH88+BKkiRJc7BvliRNvF7OzB5DZ8r/TwOXNsvHDLIoSZI0K/tmSdLEm/PMbDMj4klJnlhV/zKEmiRJ0izsmyVJ6uHMbJLnJbkNWN08flaS9w+8MkmSNC37ZkmSehtm/B7ghcD3AarqW8DzB1mUJEmalX2zJGni9RJmqaq7N2vaOIBaJElSj+ybJUmTrpfZjO9O8jygkuwInEQzrEmSJI2EfbMkaeL1cmb2NcAKYCGwDjiweSxJkkbDvlmSNPFmPTObZHvgvVX1iiHVI0mSZmHfLElSx6xnZqtqI/ALSXYaUj2SJGkW9s2SJHX0cs3sHcDXk6wEfnovu6o6a2BVSZKk2dg3S5Im3oxnZpN8tFk8EvjbZt1du74kSdIQ2TdLkvSo2c7MPifJk4HvAu8bUj2SJGlm9s3biJyevuynTqu+7EeS2mi2MPsB4EpgX2BVV3uAAp46wLokSdLjbVXfnOQ84CXAfVX1jKZtD+ATwGLgLuDoqro/SYD3AkcADwOvqqob+vnDSJK0NWYcZlxVZ1fVLwEfrqqndn3tW1UGWUmShqwPffNHgBdt1nYKcGVVLaETlE9p2l8MLGm+TgTO6csPIUlSn8x5n9mqeu0wCpEkSb3Z0r65qr4K/GCz5mXA+c3y+cBRXe0XVMfVwG5J9t6S15UkaRDmDLOSJGmbtldVrW+W7wH2apYXAnd3rbe2aXucJCcmWZVk1dTU1OAqlSSpi2FWkiQBUFVF59rb+W53blUtraqlCxYsGEBlkiQ9nmFWkqTJdu+m4cPN9/ua9nXAoq719mnaJEkaC4ZZSZIm20rguGb5OOCzXe2vTMchwANdw5ElSRq52W7Ns1Wc/l+SpPGS5OPAYcCeSdYCpwFnAhcnOQH4DnB0s/pldPrlNXT65uOHXvAY6tf9YSVJW29gYZbO9P9/CVzQ1bZp+v8zk5zSPH4jj53+/7l0pv9/7gBrkyRp4lTVMTM8dfg06xawYrAVSZK05QY2zNjp/yVJkiRJgzLsa2ad/l+SJEmStNVGNgGU0/9LkiRJkrbUsMOs0/9LkiRJkrbasMOs0/9LkiRJkrbaIG/N4/T/kiRJkqSBGFiYdfp/SZIkSdKgjGwCKEmSJEmStpRhVpIkSZLUOoZZSZIkSVLrGGYlSZIkSa1jmJUkSZIktY5hVpIkSZLUOoZZSZIkSVLrDOw+s9p6OT192U+dVn3ZjyRJkiSNC8/MSpIkSZJaxzOzE8AzvJIkSZK2NZ6ZlSRJkiS1jmFWkiRJktQ6hllJkiRJUusYZiVJkiRJrWOYlSRJkiS1jmFWkiRJktQ6hllJkiRJUusYZiVJkiRJrWOYlSRJkiS1jmFWkiRJktQ6hllJkiRJUusYZiVJkiRJrWOYlSRJkiS1jmFWkiRJktQ6hllJkiRJUusYZiVJkiRJrWOYlSRJkiS1jmFWkiRJktQ6hllJkiRJUusYZiVJkiRJrWOYlSRJkiS1jmFWkiRJktQ6hllJkiRJUusYZiVJkiRJrWOYlSRJkiS1jmFWkiRJktQ6hllJkiRJUuvsMOoCJEmStGVyevq2rzqt+rYvSRoGw6wkSSLJXcBDwEZgQ1UtTbIH8AlgMXAXcHRV3T+qGiVJ6uYwY0mStMkLqurAqlraPD4FuLKqlgBXNo8lSRoLhllJkjSTZcD5zfL5wFGjK0WSpMcaSZhNcleSm5PcmGRV07ZHkiuS3N58330UtUmSNKEK+GKS65Oc2LTtVVXrm+V7gL2m2zDJiUlWJVk1NTU1jFolSRrpmVmHMkmSND5+taoOAl4MrEjy/O4nq6roBN7Hqapzq2ppVS1dsGDBEEqVJGm8hhk7lEmSpBGpqnXN9/uATwMHA/cm2Rug+X7f6CqUJOmxRhVmHcokSdKYSPLEJLtuWgZ+A7gFWAkc16x2HPDZ0VQoSdLjjerWPL9aVeuS/DxwRZJ/6H6yqirJjEOZgHMBli5d6g3RJEnaensBn04Cnd8NPlZVX0hyHXBxkhOA7wBHj7BGSZIeYyRhtnsoU5LHDGWqqvUOZZIkaXiq6g7gWdO0fx84fPgVSZI0t6EPM3YokyRJkiRpa43izKxDmSRJkiRJW2XoYdahTO2V09O3fdVpXu4sSZIkacuN0615JEmSJEnqiWFWkiRJktQ6hllJkiRJUusYZiVJkiRJrWOYlSRJkiS1jmFWkiRJktQ6hllJkiRJUusYZiVJkiRJrbPDqAvQZMrp6ct+6rTqy34kSZIktYthVpIkSf6hWVLrOMxYkiRJktQ6hllJkiRJUusYZiVJkiRJrWOYlSRJkiS1jmFWkiRJktQ6hllJkiRJUusYZiVJkiRJrWOYlSRJkiS1jmFWkiRJktQ6O4y6AGlr5PT0bV91WvVtX5IkSZIGyzOzkiRJkqTWMcxKkiRJklrHMCtJkiRJah2vmZUkSVLfOJ+FpGExzEqSJGks9SsYG4qlbZPDjCVJkiRJrWOYlSRJkiS1jmFWkiRJktQ6hllJkiRJUus4AZTUcJIJSZIkqT0Ms9IYM2BLkjRe7Jul8eEwY0mSJElS63hmVuqzft4svl+8gb0kSZK2NZ6ZlSRJkiS1jmdmJUmStE0bx1FTkraeYVbSvDjxhSRJksaBw4wlSZIkSa1jmJUkSZIktY5hVpIkSZLUOoZZSZIkSVLrGGYlSZIkSa3jbMaSRsJZkSVJkrQ1xi7MJnkR8F5ge+Cvq+rMEZckSeriHyImj32z1H/9vPetn6eaVGMVZpNsD/wV8J+BtcB1SVZW1W2jrUzSuBrHXwbGsSZpS9k3S+PPPzKqX9r2O8xYhVngYGBNVd0BkOQiYBlghylp4Pr5AT5uxvFna1uHOcHsm6UJMY59Rb/0s5/Ylo9T24xbmF0I3N31eC3w3O4VkpwInNg8/FGSb/fptfcEvtenfY2C9Y+W9Y/WNlt/3tKKDnPkx38rj1N3/b+w9dVsc+ybx5fHZ3Yen9lN1PHZgn5ioo7PFpjz+PTxd5gZ++ZxC7NzqqpzgXP7vd8kq6pqab/3OyzWP1rWP1rWP1rWL/vm0fD4zM7jMzuPz+w8PrMbl+MzbrfmWQcs6nq8T9MmSZJGw75ZkjSWxi3MXgcsSbJvkp2A5cDKEdckSdIks2+WJI2lsRpmXFUbkrwOuJzO9P/nVdWtQ3r5vg+PGjLrHy3rHy3rHy3r34bZN481j8/sPD6z8/jMzuMzu7E4PqlyBkhJkiRJUruM2zBjSZIkSZLmZJiVJEmSJLXORIXZJC9K8u0ka5KcMs3zOyf5RPP8NUkWj6DMGfVQ//OT3JBkQ5KXjaLG2fRQ/39NcluSm5JcmWSs7vfYQ/2vSXJzkhuTfC3JAaOocyZz1d+13u8kqSQjn269Ww/H/1VJpprjf2OSPxhFnTPp5fgnObr5P3Brko8Nu8bZ9HD839N17P8xyQ9HUOaMeqj/KUmuSvLN5jPoiFHUOYna3jcPWts/+wYtyXlJ7ktyywzPJ8nZzfG7KclBw65xlHo4PocleaDr/fPnw65xlJIsaj77N/W9J02zzsS+h3o8PqN9D1XVRHzRmbTin4CnAjsB3wIO2GydPwI+0CwvBz4x6rrnWf9i4JnABcDLRl3zFtT/AuAJzfJrW3j8n9S1fCTwhVHXPZ/6m/V2Bb4KXA0sHXXd8zz+rwL+ctS1bkX9S4BvArs3j39+1HXP9/3Ttf4f05kkaOS1z+P4nwu8tlk+ALhr1HVPwlfb++YxOT5j+9k3pGP0fOAg4JYZnj8C+DwQ4BDgmlHXPGbH5zDgb0dd5wiPz97AQc3yrsA/TvN/bGLfQz0en5G+hybpzOzBwJqquqOq/g24CFi22TrLgPOb5U8BhyfJEGuczZz1V9VdVXUT8JNRFDiHXuq/qqoebh5eTedehuOil/of7Hr4RGCcZlfr5f0P8Dbg7cC/DrO4HvRa/7jqpf4/BP6qqu4HqKr7hlzjbOZ7/I8BPj6UynrTS/0FPKlZ/lngn4dY3yRre988aG3/7Bu4qvoq8INZVlkGXFAdVwO7Jdl7ONWNXg/HZ6JV1fqquqFZfghYDSzcbLWJfQ/1eHxGapLC7ELg7q7Ha3n8P8ZP16mqDcADwM8Npbq59VL/OJtv/SfQ+SvYuOip/iQrkvwT8A7g9UOqrRdz1t8Mm1lUVZ8bZmE96vX98zvNEKBPJVk0nNJ60kv9+wP7J/l6kquTvGho1c2t5/+/6VwesC/wpSHU1ate6n8L8HtJ1gKX0Tm7rMFre988aG3/7BsHbf/9aRh+Jcm3knw+ydNHXcyoNJcwPBu4ZrOnfA8x6/GBEb6HJinMqiWS/B6wFHjnqGuZr6r6q6raD3gj8OZR19OrJNsBZwFvGHUtW+H/AIur6pnAFTx6JqctdqAz1PgwOmc2P5hkt1EWtIWWA5+qqo2jLmSejgE+UlX70BlS9tHm/4U07tr+2afRugH4hap6FvA+4DOjLWc0kuwCXAKcvNlIOzHn8Rnpe2iSOup1QPdfK/dp2qZdJ8kOdIaafX8o1c2tl/rHWU/1J/l14M+AI6vqkSHV1ov5Hv+LgKMGWdA8zVX/rsAzgC8nuYvONSErMz6TQM15/Kvq+13vmb8GnjOk2nrRy/tnLbCyqn5cVXfSuS5lyZDqm8t83v/LGa8hxtBb/ScAFwNU1TeAnwH2HEp1k63tffOgtf2zbxy0/fengaqqB6vqR83yZcCOSSbqsy/JjnSC2oVVdek0q0z0e2iu4zPq99AkhdnrgCVJ9k2yE51fuFZuts5K4Lhm+WXAl6q5snkM9FL/OJuz/iTPBv43nSA7TtcLQm/1dweP3wRuH2J9c5m1/qp6oKr2rKrFVbWYzjXLR1bVqtGU+zi9HP/u61eOpHNdx7jo5f/vZ+iclaXpBPYH7hhijbPp6fMnydOA3YFvDLm+ufRS/3eBwwGS/BKdMDs11ConU9v75kFr+2ffOFgJvLKZkfYQ4IGqWj/qosZFkn+/6Rr0JAfTyQaT8scimp/9Q8DqqjprhtUm9j3Uy/EZ9Xtoh2G90KhV1YYkrwMupzM74HlVdWuStwKrqmolnX+sjyZZQ+di+eWjq/ixeqk/yS8Dn6bzy+RLk5xeVWNx7UOPx/+dwC7AJ5v/E9+tqiNHVnSXHut/XXNm+cfA/Tz6y9fI9Vj/2Oqx/tcnORLYQOf/76tGVvBmeqz/cuA3ktwGbAT+tKrG4heKebx/lgMXjVvQ6LH+N9AZ2v0ndCaDetW4/Rzborb3zYPW9s++YUjycTp/CNyzueb9NGBHgKr6AJ1r4I8A1gAPA8ePptLR6OH4vAx4bZINwP8Dlk/YZ9+hwLHAzUlubNpOBZ4Cvofo7fiM9D2UyXq/SpIkSZK2BZM0zFiSJEmStI0wzEqSJEmSWscwK0mSJElqHcOsJEmSJKl1DLOSJEmSpNYxzEojkmRxklt6XPetzW1/JElSnyT50VZs++UkS/tZj6T5mZj7zEptlWT7qvrzeW6zQ1VtGGBNA92/JEnqD/tsbcs8MyuN1g5JLkyyOsmnkjwBIMldSd6e5Abg5Uk+kuRlzXPPSfKVJNcnuTzJ3k37l5P8RZJVwEndL5LkPyW5sfn6ZpJdm/Y3Jrk5ybeSnNm0HZjk6iQ3Jfl0kt2n2/9MdUiS1DbpeGeSW5p+8Xeb9u2SvD/JPyS5Isllm/rjzbY/ptnuliRvb9q2b/rvTfv8k6b99Ulua/rZi6bZ19OTXNv02TclWdK0v7J5/K0kH23aFif5UtN+ZZKnNO0fSfKBJNcA70iyX5IvNH323yd52sAOpjREnpmVRusXgROq6utJzgP+CHhX89z3q+oggCQvar7vCLwPWFZVU01newbw+802O1XVdEOe/huwonmdXYB/TfJiYBnw3Kp6OMkezboXAH9cVV9J8lbgNODk7v03dXxlljokSWqT3wYOBJ4F7Alcl+SrwKHAYuAA4OeB1cB53RsmeTLwduA5wP3AF5McBdwNLKyqZzTr7dZscgqwb1U90tXW7TXAe6vqwiQ7AdsneTrwZuB5VfW9rj77fcD5VXV+kt8HzgaOap7bp1l/Y5IrgddU1e1Jngu8H/i1LTlQ0jgxzEqjdXdVfb1Z/hvg9TwaZj8xzfq/CDwDuCIJwPbA+q7np9sG4OvAWUkuBC6tqrXNNbgfrqqHAarqB0l+Ftitqr7SbHc+8Mlp9j9XHZIktcmvAh+vqo3AvUm+Avxy0/7JqvoJcE+Sq6bZ9peBL1fVFEDT1z4feBvw1CTvAz4HfLFZ/ybgwiSfAT4zzf6+AfxZkn3o9Nm3J/m1po7vQafPbtb9FTpBHOCjwDu69vPJJsjuAjwP+GTTZwPs3ONxkcaaYVYarZrl8b9Ms36AW6vqV2bY33TbUFVnJvkccATw9SQvnHelj93/XHVIkjTRqur+JM8CXkjnbOvRdEYw/SadsPtSOqH1P3Rf01pVH2uGB/8mcFmSV29hCZv67O2AH1bVgVu4H2lsec2sNFpPSbIpEP4X4GtzrP9tYMGmbZLs2Aw9mlWS/arq5qp6O3Ad8DTgCuD4PHqd7h5V9QBwf5L/2Gx6LJ3hxH2pQ5KkMfX3wO8217kuoBM2r6Uzsul3mmtn9wIOm2bba4H/lGTPJNsDxwBfSbInsF1VXUJniPBBSbYDFlXVVcAbgZ8FduneWZKnAndU1dnAZ4FnAl+iM4fGzzXrbBpm/H+B5c3yK5qf4zGq6kHgziQvb7ZNE7Kl1vPMrDRa3wZWNNfL3gacM9vKVfVvzcQTZzdDgncA/gK4dY7XOTnJC4CfNOt+vrlW50BgVZJ/Ay4DTgWOAz7QhNw7gOP7WIckSePo03SG7H6Lziip/15V9yS5BDicTh99N3AD8ED3hlW1PskpwFV0Ri59rqo+2wTGDzcBFuBNdC7L+Zum7wxwdlX9cLNajgaOTfJj4B7gfzWXAp1BJyRvBL4JvAr44+Y1/hSYYpo+u/EK4JwkbwZ2BC5qflap1VK1+ShHSZIkSQBJdqmqHzVnRa8FDq2qe0ZdlyTPzEqSJEmz+dtm1uGdgLcZZKXx4ZlZSZIkSVLrOAGUJEmSJKl1DLOSJEmSpNYxzEqSJEmSWscwK0mSJElqHcOsJEmSJKl1/j+gxOLZY90VhQAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 1152x360 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "### PLOT TEST SCORE DISTRIBUTIONS ###\n",
    "\n",
    "plt.figure(figsize=(16,5))\n",
    "plt.subplot(1,2,1)\n",
    "plt.hist(brier_scores, bins=20, color='green')\n",
    "plt.xlabel('brier score'); plt.ylabel('frequency')\n",
    "plt.subplot(1,2,2)\n",
    "plt.hist(logloss_scores, bins=20, color='green')\n",
    "plt.xlabel('logloss score'); plt.ylabel('frequency')\n",
    "plt.show()"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.12"
  },
  "papermill": {
   "default_parameters": {},
   "duration": 21.921593,
   "end_time": "2022-11-28T21:50:32.870702",
   "environment_variables": {},
   "exception": null,
   "input_path": "__notebook__.ipynb",
   "output_path": "__notebook__.ipynb",
   "parameters": {},
   "start_time": "2022-11-28T21:50:10.949109",
   "version": "2.3.4"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
